import torch

# 获取优化器的函数
# 这个函数根据提供的配置返回一个优化器。
# 输入：模型参数，包含优化器类型和超参数的配置
# 输出：优化器实例
def get_optimizer(model, config):
    if config.optimizer == 'Adam':
        return torch.optim.Adam(model.parameters(), lr=config.learning_rate, weight_decay=config.weight_decay)
    elif config.optimizer == 'AdamW':
        return torch.optim.AdamW(model.parameters(), lr=config.learning_rate, weight_decay=config.weight_decay)
    elif config.optimizer == 'SGD':
        return torch.optim.SGD(model.parameters(), lr=config.learning_rate, weight_decay=config.weight_decay, momentum=0.9)
    else:
        raise ValueError(f"Unsupported optimizer: {config.optimizer}")
